Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

goocanvas: update to 3.0.0 #31159

Closed
wants to merge 3 commits into from
Closed

Conversation

reback00
Copy link
Contributor

General

Have the results of the proposed changes been tested?

  • I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
  • I generally don't use the affected packages but briefly tested this PR

@reback00
Copy link
Contributor Author

I got this error:

goocanvas-devel-3.0.0_1 install i686 /github/home/hostdir/binpkgs 1346304 214048
gpredict-2.2.1_1: broken, unresolvable shlib `libgoocanvas-2.0.so.9'
Transaction aborted due to unresolved shlibs.
Failed to install 'goocanvas' and 'gpredict-2.2.1_1'
Error: Process completed with exit code 1.

Seems like gpredict would need a rebuild. Anybody know how to solve this?

cc @newbluemoon @bra1nwave

@newbluemoon
Copy link
Contributor

I didn’t update goocanvas to 3.0.0, because it breaks gpredict and perl-GooCanvas2 --> gscan2pdf.

Building gpredict with goocanvas-3.0.0 errors out with:
Gpredict requires libgoocanvas-2.0-dev

and perl-GooCanvas2 fails running tests with
Typelib file for namespace 'GooCanvas', version '2.0' not fount at ...

Haven’t looked into fixing those two packages, but without it goocanvas-3.0.0 cannot be merged.

@reback00
Copy link
Contributor Author

I see. I just tried on my machine for updating my package for akira. It worked so thought of committing the changes. Didn't know it has so many things attached to it.

Arch Linux has recently moved to goocanvas 3. I think I got some hints. Arch's perl-goocanvas2 has had these changes for updating to goocanvas 3. Mainly a sed line is needed. So we can have something like this:

pre_configure() {
	# For adapting to goocanvas 3.0
	sed -i "s/version => '2.0'/version => '3.0'/" lib/GooCanvas2.pm
}

gpredict and gpredict-git haven't been updated for years, so we'd have to solve it ourselves. I've looked into gpredict source tree for goocanvas references and I found the most prominent instance in configure:

if pkg-config --atleast-version=2.0 goocanvas-2.0; then
    CFLAGS="$CFLAGS `pkg-config --cflags goocanvas-2.0`"
    LIBS="$LIBS `pkg-config --libs goocanvas-2.0`"
else
    as_fn_error $? "Gpredict requires libgoocanvas-2.0-dev" "$LINENO" 5
fi
...
GOOC_V=`pkg-config --modversion goocanvas-2.0`

configure.ac also has similar code. I used this patch to update them. However, changing these to 3.0 shows this message:

WARNING: 'aclocal-1.15' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.

To remedy this, something like this has to be added to template:

pre_configure() {
	# To allow patched configure files by goocanvas 3 patches
	# Details: https://github.com/apereo/mod_auth_cas/issues/97
	touch *
}

I haven't looked into gscan2pdf ( cc @Hoshpak ) but I think it should build fine if perl-goocanvas2 is updated.

@reback00
Copy link
Contributor Author

reback00 commented May 28, 2021

If the above changes are ok, should this PR contain all the changes for updating to goocanvas 3? Or can the changes be in separate PRs for separate packages?

In any case, let me know if I can help in anything.

@newbluemoon
Copy link
Contributor

I think this PR should contain all the necessary changes, but in a separate commit per affected package.

Just built perl-GooCanvas2 with your suggested patch; do_check succeeds and gscan2pdf works without a problem.
Probably better to change sed to vsed though and while you’re at it, please update the license to the proper SPDX id:
license="Artistic-1.0-Perl, GPL-1.0-or-later"

@newbluemoon
Copy link
Contributor

newbluemoon commented May 28, 2021

Sorry, I was running gscan2pdf still with goocanvas-2.0.4; it actually complains about not finding the typelib file for GooCanvas version 2.0, so gscan2pdf seems to need patching, too.

@newbluemoon
Copy link
Contributor

As for gpredict: the current configure.ac-git-version (lines 52 and 109) checks for goocanvas 2 or 3 and both versions seem to be interchangably.

Just tested it – this time really with goocanvas-3.0 ;) – and it works.

However, a simple sed sufficies:

pre_configure() {
        vsed -i "s/goocanvas-2.0/goocanvas-3.0/" configure
}

@newbluemoon
Copy link
Contributor

Sorry again, got a little confused with old and modified packages on my system, but all sorted out now. ;)
gscan2pdf does work as mentioned above without problem (I was actually still using the unmodified perl-GooCanvas2).

So, to summarize, with the two seds applied to gpredict and perl-GooCanvas2: gscan2pdf and gpredict work fine here. :)

@newbluemoon
Copy link
Contributor

I think perl-GooCanvas2 and gpredict need a revbump, else it lgtm, thanks for updating. :)

About that gpredict check error: the file it complains about, gtk-sat-tree.c, is not in the source tarball. So maybe the check should be skipped, because the program runs fine without it locally.

@reback00
Copy link
Contributor Author

@newbluemoon
Thanks. I've tried with the changes you suggested. But build fails with this message:

Making check in po
make[2]: Entering directory '/builddir/gpredict-2.2.1/po'
make[2]: *** No rule to make target '../src/gtk-sat-tree.c', needed by 'gpredict.pot'.  Stop.
make[2]: Leaving directory '/builddir/gpredict-2.2.1/po'
make[1]: *** [Makefile:440: check-recursive] Error 1
make[1]: Leaving directory '/builddir/gpredict-2.2.1'
make: *** [Makefile:731: check] Error 2
=> ERROR: gpredict-2.2.1_1: do_check: '${make_cmd} ${make_check_args} ${make_check_target}' exited with 2
=> ERROR:   in do_check() at common/build-style/gnu-configure.sh:33
Error: Process completed with exit code 1.

Seems to be related to translations. This didn't happen in my machine though. Any idea why this is happening?

@newbluemoon
Copy link
Contributor

You probably didn’t use the -Q option with xbps-src and never ran the check locally, but the CI does.
You could add make_check=no to gpredict’s template to skip the test.
The file is missing in the tarball, but the package is built fine without it – anyway, it was missing the entire time and no one reported an error as did my limited testing – so I guess it is fine to do so.

@reback00
Copy link
Contributor Author

About that gpredict check error: the file it complains about, gtk-sat-tree.c, is not in the source tarball. So maybe the check should be skipped, because the program runs fine without it locally.

Oh! I didn't see your comment.

So I'm trying with something like this:

# Check needs to be skipped for a gtk-sat-tree.c related error which is not important for local use.
# Details: https://github.com/void-linux/void-packages/pull/31159#issuecomment-850569764
make_check=no

Also applying revision change...

@github-actions
Copy link

Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants